комп'ютерний сервіс, відновлення даних


У пошуках втрачених розділів


Чому розділи губляться?


Розділ, також званий логічним диском, у найпростішому випадку є логічно відокремленою областю фізичного диска. Як правило, ми можемо мати один або кілька розділів на одному фізичному диску, деякі з яких можуть мати особливе значення. Це можуть бути розділи зарезервовані для операційної системи або популярні в ноутбуках розділи відновлення. Також можливо, що один розділ буде розташовуватись на декількох фізичних дисках. Таке рішення найчастіше зустрічається у випадку масивів РАІД. Але чому іноді розділи зникають безвісті?
Причин знікнення розділів може бути багато. Найпоширеніши з них виникають з помилок користувача, як невдалі експерименти з логічним розділенням диска, випадкове форматування не того диска, що треба, або підключення зовнішнього диска до телевізора, чи іншого пристрою, який неконтролювано змініть логічну структуру диска. Друга важлива група причин втрати доступу до розділів - це віруси та інші види шкідлівих програм. Третя категорія причин втрати розділів - це фізичні збої, що спричиняють логічні помилки, на які варто звернути більше увагі.
Таки помилки можуть бути випадковими, як наслідок раптового відключення живлення під час запису даних в логічні структри файлової системи, але часто вони бувають симптомами або провісниками збою носія. Поширеною причиною помилок запису в жорстких дисках є помилки намагніченості поверхні, викликані нестабільним джерелом живлення. Ця проблема особливо стосується дисків у настольних комп'ютерах, де диски пілключені безпосередньо до блоку живлення. Якщо блок живлення нестабільний, видає напругу, що сильно змінюється або значно відрізняється від номінальних значень, вихід з ладу підключеного до нього жорсткого диска є лише питанням часу.
У випадку зовнішніх дисків, підключених через USB, втрата розділу, поява розділу RAW або запит операційної системи на форматування накопичувача, може означати справді серйозну проблему. Перехідники SATA-USB мають свій БІОС, який дозволяє операційній системі виявляти диск під назвою наданою виробником корпусу, незалежно від фактичної моделі жорсткого диска всередині корпусу.
Такий перехідник може виявлятись в операційній системі навіть, коли підключений через нього жорсткий диск несправний або коли диск взагалі не підключений. Саме тоді часто виникає проблема з доступом до розділу. І якщо причиною проблеми є фізичний збій накопичувача, спроби сканування диска програмами для відновлення даних можуть не тільки не дати позитивного результату, але й призвести до погіршення стану магнітної поверхні, що в крайньому випадку може унеможливити відновлення даних.
Інколи перехідники SATA-USB шифрують дані. В такому випадку ключі шифрування зберігає БІОС перехідника, а його втрата унеможлювює розшифровку даних. При цьому слід пам'ятати, що такий перехідник шифрує дані навіть, якщо на диску немає пароля. Перехідники виходять з ладу настільки рідко, що в таких ситуаціях неварто починати з заміни перехідника, а краще діагнозувати диск підключивши його безпосередньо через інтерфейс SATA.

Логічна організація диска - трохи теорії


Перший сектор диска (LBA 0, оскільки сектори нумеруються починаючи з нуля) є головним завантажувальним сектором (англ. Master Boot Record - MBR). В цьому секторі зберігається таблиця розділів - інформація про розділи, що зберігаються на диску. Це не завжди є інформація про всі роздіди на диску та не завжди таблиця розділів прямо посилає на кожен з них. Запис у таблиці розділів може наприклад посилати на розташовану в наступних секторах таблицю GPT (англ. GUID Partition Table) або на розширений розділ, що зміщує власну таблицю логічних дисків (Secondary MBR).
Після читання вмісту завантажувального сектора, визначаються та зчитуються початкові сектори кожного розділу. Ці сектори мають різні назви, залежно від типу файлової системи. Наприклад Boot Record у випадку розділів FAT і NTFS, Volume Header в роздилах HFS або superblock в розділах Ext, UFS, XFS, ReiserFS та інших. На основі цієї інформації визначаються основні параметри розділу, такі, як розмір кластерів і розташування інших метаданих, як таблиці розміщення файлів (File Allocation Table) і каталоги в розділах FAT, MFT (Master File Table - основна таблиця файлів) у розділі NTFS або індексні вузли index node - inode в розділах Ext, тощо. На основі прочитаних метаданих можна визначити розташування та атрибути файлів, що зберігаються на даному розділі.
Якщо будь-який з елементів метаданих пошкоджений, зазвичай операційна система не може побудувати правильний образ логічної структури файлової системи. Застосувані профіляктичні засоби, які зазвичай включають дублювання найважливіших елементів метаданих, часто виявляються неефективними. Однак, для фахівця з відновлення даних, навіть фрагменти пошкоджених метаданих можуть бути джерелом цінної інформації про логічну структуру файлової системи.
Тому, в разі пошкодження метаданих файлової системи, не можна форматувати накопичувач, навіть, коли це пропонують що більш примітивні програми для відновлення даних або так радять дилетанти на інтернет-форумах. Також слід не довіряти програмам автоматичного відновлення файлової системи, як chkdsk або fsck. Перед запуском такої програми, необхідно виконати посекторну копію, тому, що такі програми здійснюють неконтролювані записи безпосередньо на диск і при погіршені ситуації повернутись до початкового стану неможливо.

Практика пошуку втрачених розділів


Без MBR


Якщо вміст завантажувального сектора втрачено або пошкоджено, операційна система не зможе знайти розділи на диску. Як правило, диск відображається в диспетчері пристроїв і керуванні дисками як порожній та неініціалізований. В такому випадку варто пошук розділів почати з секторів, де зазвичай починається перший розділ, тобто LBA 63 та LBA 2048. Також можна перевірити наступні ступені двійки - ...LBA128, LBA256, LBA512 ...
В перших секторах після MBR можна знайти таблицю GPT. Оскільки неможливо за допомогою MBR адресувати розділи на дисках розміром понад 2 ТБайт, таки диски майже напевно використовують таблицю GPT. Далі варто перевірити сектори в кінці диска. Там можна знайти копію таблиці GPT або завантажувального сектора розділу NTFS.
На основі знайдених таким чином метаданих часто можна визначити розташування та розмір принаймні деяких інших розділів. Згодом пошук можна подібним чином повторити й для "вільного" дискового простору, що залишився після визначення розташування перших розділів. Там також можна знайти метадані, які підскажуть дальші кроки праці. Ось, як програми для відновлення даних виконують швидке сканування. І якщо пошкодження логічної структури обмежуються тільки сектором MBR або таблицою GPT, цієї процедури достатньо для відновлення всіх даних на диску.
Цей метод заснований на тому, що метадані (включаючи їх копії) зазвичай розміщуються на початку або в кінці диска та окремих розділів, а також на припущенні, що розділи типово створюються послідовно, без пробілів та займають практично весь дисковий простір. Використовуючи такий підхід можна скоротити час відновлення даних та відразу зосередитись на пошуку найбільш важливих та найперспективніших частинах диска. Крім того, у випадку нестабільних або пошкоджених дисків, сканування відносно невеликих областей зменшує навантаження на диск та підвищує шанси скопіювати найважливіші дані до повного виходу диска з ладу.

Щоб використовувати диск у дисководі, спочатку відформатуйте його.


Це повідомлення, яке користувач часто бачить замість своїх даних. Воно вказує, що розділ, швидше за все, існує, але його метадані пошкоджені таким чином, що інформація в ньому недоступна. Запит на форматування може з'явитись, якщо завантажувальний сектор розділу пошкоджено або втрачено. В такій ситуації можна знайти копію завантажувального сектора, а якщо й вона пошкоджена, спробувати відтворити параметри розділу вручно, використовуючи фрагменти обоїх копії. Якщо всі копії були втрачені або пошкоджені настільки, що не дозволяють відновити параметри розділу, ці параметри можна визначити на основі знайдених фрагментів логічних структур, таких, як таблиці FAT, каталоги, записи $MFT тощо.
Звичайно, якщо на розділі є важливі дані, слід його ні в жодному разі не форматувати. Форматування розділу створює нові логічні структури, які перезапишуть старі, що ускладнює подальше відновлення даних. Навіть, якщо форматування, не знищить самі файли, це ускладнить хоча б і часткову реконструкцію логічної структури і може призвести до втрати імен файлів та інших атрибутів.

Чи може бути життя після форматування?


Швидке форматування диска передбачає створення та запис нових метаданих, що відповідають заданому типу та параметрам нового розділу. На практиці це зазвичай означає незворотне знищення інформації про старий розділ шляхом перезапису, але не переписує всі файли, які там знаходились. У такій ситуації можна спробувати знайти файли за заголовками.
Майже кожен вид файлів містить у собі певні характерні структури, які дозволяють ідентифікувати файл на поверхні диска, навіть, якщо інформація про його назву, розташування та інші атрибути була втрачена. Більшість програм для відновлення даних мають базу даних з попередньо визначеними сигнатурами найпопулярніших типів файлів. Спеціалізована програма для відновлення наприклад фотографій, часто відрізняється від програми загального призначення тим, що має меншу базу сигнатур, що дозволяє відновлювати лише файли зображень. Професійні програми для відновлення даних дозволяють додавати сигнатури на основі аналізу файлів заданого типу.
Результатом відновлення даних на основі сигнатур можуть бути не тільки файли, але теж фрагменти логічних структур, каталоги FAT, записи $MFT, індексні вузли, тощо. Знайдені фрагменти старих метаданих дозволяють хоча б частково відновити логічну структуру попереднього розділу. Якщо новий розділ не використовувався для зберігання даних, у багатьох випадках можна знайти достатньо метаданих старого розділу, щоб можна було відтворити логічну структуру старого розділу майже стовідсотково, але кожен запис призводить до перезапису чергових секторів та незворотної втрати наступних фрагментів попереднього вмісту.
Тому, якщо розділ був помилково відформатуваний, найкраще, нічого на нього не записувати. В противному випадку після відновлення даних доведеться вручну переглядати тисячі файлів з іменами автоматично наданими програмою відновлення даних, зазвичай на підставі номеру сектора LBA, в якому починається файл. Ці файли можна відсортувати лише за їх розширеннями. Крім того, немає жодної гарантії, що дійсно важливі файли не будуть перезаписані, через що їх відновити буде взагалі неможливим.
Набагато серйозніші наслідки форматування розділів у випадку твердотільників та жорстких дисків з технологією черепичного запису (англ. Shingled Magnetic Recording - SMR). Більшість із них (практично, майже всі) підтримують функцію TRIM. Ця функція дозволяє операційній системі інформувати контролер диска про вільні області в логічних структурах. Завдяки цій інформації, диск не мусить фізично зберігати вміст цих секторів та може у відповідь на команду їх прочитання просто повертати нулі. Після передання диску інформації про вілні сектори, їх вміст не тільки перестає бути доступним на логічному рівні, але теж дуже швидко знищується на фізичному рівні, що унеможливює їх відновлення навіть у лабораторних умовах. Тому, незважаючи на повідомлення операційної системи або інших програм та дурні поради на інтернетових форумах, ніколи не форматуй розділ, на якому маєш важливі дані, а перед спробою відновити дані, слід вимкнути підтримку функції TRIM в операційній системі.